![]() |
STM32 电机控制 SDK MCFW-6.4.1
用于构建驱动 STM32 的 PMSM 电机应用的软件开发套件
|
上一页:正交编码器传感器反馈处理 ↤|目录 |↦ 下一页:固件使用的测量单位
从一开始,MCSDK就支持为FOC控制类型添加辅助传感器。
在6.4.0版本之前,辅助传感器的使用仅限于调试和调谐传感器(HALL或编码器),允许显示主传感器和辅助传感器两个角度。
此功能特别有助于检查霍尔传感器“置放电角度”的精确性,并且是通过电机配置文件仪分析霍尔传感器参数的必备功能。检查编码器对准是否正确也很有用。
辅助传感器计算电速度和角度,就像它作为主传感器一样,但计算出的角度从未作为FOC算法的输入。
从6.4.0版本开始,新增了两个API,允许应用代码在电机转动时使用辅助传感器替代主传感器:
bool MC_SensorSwitchMotor1 (uint16_t deltaAngleMargin)bool MC_SensorSetMotor1 (uint16_t deltaAngleMargin, SpeednPosFdbk_Handle_t *newSensor)需要注意的是,你的电机始终会从你在项目创建时配置的主传感器开始。默认配置在每次电机启动时应用,无论最后一次电机停止时使用哪种主要传感器。
这两个API都将参数作为第一参数。 表示允许切换的主传感器与辅助传感器角度之间的绝对误差值。只要项目包含辅助传感器,高频任务中会持续计算误差。该参数保证在切换时,两个传感器之间的转换能满足您的应用和电机需求。deltaAngleMargindeltaAngleMargin
角度误差是在以 s16 度表示的值之间计算的
在开发测试中,我们使用了等于1000的值,代表5.5电度,且未发现控制有任何不连续。当然,这个数值必须根据你的发动机和应用需求进行调校。deltaAngleMargin
API采用额外的参数。该参数只能是主传感器地址或辅助传感器地址。如果你传递主传感器地址,函数调用不会生效,返回的值将是 。MC_SensorSetMotor1SpeednPosFdbk_Handle_t *newSensortrue
如果参数是辅助传感器的地址,且条件允许切换,则主传感器将被设置为,旧的主传感器将Save为新的辅助传感器,功能返回。newSensordeltaAngleMarginnewSensortrue
该参数是一个类型的指针,允许通过任何类型的速度传感器(包括不含卢恩伯格观察者)、STO_CR_Handle_t、STO_PLL_Handle_t、HALL_Handle_t、ENCODER_Handle_t。这得益于铸造 的 ,因为所有这些结构的第一参数都是类型 的成员。newSensorSpeednPosFdbk_Handle_tSpeednPosFdbk_Handle_t *_SuperSpeednPosFdbk_Handle_t
供您参考,这里有一段来自main.c的代码片段,用来演示该API的正确使用方法:
电机在重置后2000秒内启动并达到1转/分钟。
如果电机转速低于1000,我们切换到编码器;如果转速超过2100,则切换到STO_PLL。
此次测试通过Motor Pilot调整了电机转速。
限制:
- HSO算法目前不支持辅助传感器。
- 主传感器和辅助传感器不能同时是物理传感器(编码传感器或霍尔传感器)。
- 位置控制模式仅支持编码器作为主传感器。如果选择了该API,MC_SensorSwitchMotor和MC_SensorSetMotor API将无法使用。